#Boa:Dialog:Dialog1

import wx
import wx.grid
import consultasBD
import CAJAchicaAltas
import CajaDetallesVentas
import time
import datetime
import utiles
import fiscal
import CtasCtes
import Vista
import utiles
import os
import operator

def create(parent):
    return Dialog1(parent)

[wxID_DIALOG1, wxID_DIALOG1BUTTON1, wxID_DIALOG1BUTTON2, 
 wxID_DIALOG1CERRARCAJA, wxID_DIALOG1DATEPICKERCTRL1, wxID_DIALOG1DETALLE, 
 wxID_DIALOG1GRID1, wxID_DIALOG1IMPRIMIR, wxID_DIALOG1MODIFICAR, 
 wxID_DIALOG1TXTFECHACAJA, 
] = [wx.NewId() for _init_ctrls in range(10)]

[wxID_DIALOG1MENU1ITEMS0] = [wx.NewId() for _init_coll_menu1_Items in range(1)]

class Dialog1(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DIALOG1, name='', parent=prnt,
              pos=wx.Point(215, 193), size=wx.Size(640, 388),
              style=wx.DEFAULT_DIALOG_STYLE, title='Caja Diaria')
        self.SetClientSize(wx.Size(624, 352))

        self.datePickerCtrl1 = wx.DatePickerCtrl(id=wxID_DIALOG1DATEPICKERCTRL1,
              name='datePickerCtrl1', parent=self, pos=wx.Point(96, 8),
              size=wx.Size(96, 21), style=wx.DP_SHOWCENTURY)
        self.datePickerCtrl1.Enable(False)

        self.grid1 = wx.grid.Grid(id=wxID_DIALOG1GRID1, name='grid1',
              parent=self, pos=wx.Point(8, 40), size=wx.Size(608, 272),
              style=0)

        self.txtfechacaja = wx.StaticText(id=wxID_DIALOG1TXTFECHACAJA,
              label='Fecha de Caja:', name='txtfechacaja', parent=self,
              pos=wx.Point(16, 8), size=wx.Size(74, 13), style=0)

        self.modificar = wx.Button(id=wxID_DIALOG1MODIFICAR,
              label='Modificar Egresos/Ingresos', name='modificar', parent=self,
              pos=wx.Point(328, 8), size=wx.Size(160, 23), style=0)
        self.modificar.Bind(wx.EVT_BUTTON, self.OnModificarButton,
              id=wxID_DIALOG1MODIFICAR)

        self.detalle = wx.Button(id=wxID_DIALOG1DETALLE, label='Detalle',
              name='detalle', parent=self, pos=wx.Point(208, 8),
              size=wx.Size(75, 23), style=0)
        self.detalle.Bind(wx.EVT_BUTTON, self.OnDetalleButton,
              id=wxID_DIALOG1DETALLE)

        self.cerrarCaja = wx.Button(id=wxID_DIALOG1CERRARCAJA,
              label='Cerrar Caja', name='cerrarCaja', parent=self,
              pos=wx.Point(528, 8), size=wx.Size(75, 23), style=0)
        self.cerrarCaja.Bind(wx.EVT_BUTTON, self.OnCerrarCajaButton,
              id=wxID_DIALOG1CERRARCAJA)

        self.imprimir = wx.Button(id=wxID_DIALOG1IMPRIMIR, label='Imprimir',
              name='imprimir', parent=self, pos=wx.Point(520, 320),
              size=wx.Size(75, 23), style=0)
        self.imprimir.Bind(wx.EVT_BUTTON, self.OnImprimirButton,
              id=wxID_DIALOG1IMPRIMIR)

        self.button1 = wx.Button(id=wxID_DIALOG1BUTTON1,
              label='Listado Art. Vendidos EN 1', name='button1', parent=self,
              pos=wx.Point(328, 320), size=wx.Size(144, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
              id=wxID_DIALOG1BUTTON1)

        self.button2 = wx.Button(id=wxID_DIALOG1BUTTON2,
              label='Listado Art. Vendidos v2', name='button2', parent=self,
              pos=wx.Point(136, 320), size=wx.Size(136, 23), style=0)
        self.button2.Show(True)
        self.button2.Enable(True)
        self.button2.Bind(wx.EVT_BUTTON, self.OnButton2Button,
              id=wxID_DIALOG1BUTTON2)

    def __init__(self, parent):
        self.padre = parent
        #hoy = time.strptime(self.padre.fecha,"%d-%m-%y")
        #fechaPago = datetime.datetime(hoy.tm_year, hoy.tm_mon, hoy.tm_mday)
        self.fecha = self.padre.fecha #str(fechaPago.strftime("%Y-%m-%d"))
        
        self.datosArt = []
        
        self.datosCaja = []
        self.renglon = []
        
        self._init_ctrls(parent)
        self.cargaGrilla()
        self.cargaDatos()
        

        print self.padre.inusuario.Value
        if self.padre.inusuario.Value == "cajatotal2" or self.padre.inusuario.Value == "cajatotal1":
            self.button2.Show(True)
            self.button2.Enable(True)
            
        else: 
            self.button2.Show(False)
            self.button2.Enable(False)
        
        self.button2.Refresh()
        self.validar_caja_cerrada()
        
    def validar_caja_cerrada(self):
        if utiles.isCajaCerrada(""):
            self.cerrarCaja.Enable(False)
            self.modificar.Enable(False)
        
    def cargaGrilla(self):
        
        tablaSQL= "ventas"
        busca = " fecha = '"+self.fecha+"'"
        resultado =consultasBD.cuentafilasagrupado(self,'*',tablaSQL,str(busca))
        print self.padre.rol
        if self.padre.rol=="cajera":
            self.columnas2 =['Forma de Pago','Descripcion','    Egresos    ','  Ingresos  ','  Ventas  ','  En  2  ' ,'Recibos','  Total']
        else:
            self.columnas2 =['Forma de Pago','Descripcion','    Egresos    ','  Ingresos  ','  Ventas  ' ,'Recibos','  Total']
        
        self.grid1.CreateGrid(30,len(self.columnas2))
        
        for i in range(len(self.columnas2)-1,-1,-1): 
            self.grid1.SetColLabelValue(i,self.columnas2[i])
        self.grid1.AutoSizeColumn(0,True)
        self.grid1.AutoSizeColumn(1,True)
        self.grid1.AutoSizeColumn(2,True)
        self.grid1.AutoSizeColumn(3,True)
        self.grid1.AutoSizeColumn(4,True)
        self.grid1.AutoSizeColumn(5,True)
        
        if self.padre.rol=="cajera":
            self.grid1.AutoSizeColumn(6,True)
        
            
        #self.grid1.AutoSizeColumn(7,True)
        #self.grid2.SetColSize(1,100)
        self.grid1.DisableDragColSize()
        
        for x in xrange(int(resultado)):
            for i in xrange(len(self.columnas2)-1,-1,-1): 
                    self.grid1.SetReadOnly(x,i,True)
        
    def cargaDatos(self):
        self.datosCaja=[]
        renglon = ["","","","","","","",""]
        for x in xrange(30):
            for j in xrange(len(self.columnas2)):
                self.grid1.SetCellValue(x,j,"")
                
        tablaSQL= "ventas"
        busca = " fecha = '"+self.fecha+"'"
        resultado =consultasBD.cuentafilasagrupado(self,'*',tablaSQL,str(busca))
        
        condi = "a.fecha='%s' and (a.idventa = b.idventa)" % (self.fecha)
        #carga los valores en la grilla
        condifecha = "fecha ='"+self.fecha+"'"
        resultado2 =consultasBD.cajavalores(self,'*',tablaSQL,str(condi),str(condifecha))
        i = int(0)
        
        #idformapago = 1
        egreso = float(0.0)
        ingreso = float(0.0)
        
        
        for r in resultado2:
            
            renglon = ["","","","","","","",""] 
            egreso = float(0.0)
            ingreso = float(0.0)
                 
            idformapagos = r[0] #en p , mastercard, visa1 
            
            #idformaticket = r[0] # en 1 o en 2
            #egresos
            condicionSQL = "fecha='%s' and tipoalta='Egreso' and (idvalor='%s')" % (str(self.fecha),r[0])
            resultadose = consultasBD.executaSumadorSQL(self,"*","cajachica",condicionSQL)
            for b in resultadose:
                egreso = b[0]
                
            
            #ingresos
            condicionSQL = "fecha='%s' and tipoalta='Ingreso' and (idvalor='%s') " % (str(self.fecha),r[0])
            resultadosi = consultasBD.executaSumadorSQL(self,"*","cajachica",condicionSQL)
            for ing in resultadosi:
                ingreso = ing[0]
                
            
            en1 = 0.0
            en2 = 0.0
        
            condicion1 = "a.fecha='%s' and idformapagos='%s' and idformaticket= 1" % (str(self.fecha),idformapagos)
            
            condicion2 = "a.fecha='%s' and idformapagos='%s' and idformaticket= 2" % (str(self.fecha),idformapagos)
           
            discrimina = consultasBD.cajaValoresDiscrimina(self,"*",condicion1,condicion2)
            sale = 1
            for d in discrimina:
                if sale==1:
                    en1 = d[0]
                    sale=2
                else:
                    en2 = d[0]
            
            
            
            #si es CC
            #aca va el select para darle valores a en1 y en2
            
            if idformapagos in ('CC1','CC2','CC3','CC4'):
                condicion11 = "v.fecha='%s' and idformapagos='%s' and idformaticket= 1" % (str(self.fecha),idformapagos)
                condicion22 = "v.fecha='%s' and idformapagos='%s' and idformaticket= 2" % (str(self.fecha),idformapagos)
                
                
                
                sqlcc1="SELECT SUM(x.total) as 'totalx' from (SELECT (montocuota) as 'TOTAL',v.idcliente FROM ventas v, vtas_ctasctes vt WHERE v.idventa = vt.idventa and %s ) x" % condicion11
                print sqlcc1
                resultcc1= consultasBD.ordenCrudaResultDictSinCommit(sqlcc1)
                en1 = resultcc1["totalx"]
                
        
                sqlcc2="SELECT SUM(x.total) as 'totalx' from (SELECT (montocuota) as 'TOTAL',v.idcliente FROM ventas v, vtas_ctasctes vt WHERE v.idventa = vt.idventa and %s ) x" % condicion22
                print sqlcc2
                resultcc2= consultasBD.ordenCrudaResultDictSinCommit(sqlcc2)
                en2 = resultcc2["totalx"]
            
            
            #saco en 1
            if egreso == None:
                    egreso = 0.0
                    
            if ingreso == None:
                    ingreso = 0.0
                    
            if en1 == None:
                    en1 = 0.0
                    
            if en2 == None:
                    en2 = 0.0
                    
                    
			#RECIBOS
            fechacambiada = self.fecha[8:10]+"-"+self.fecha[5:7]+"-"+self.fecha[:4]
            
            SQL="select sum(z.Total) as 'ztotal' from (SELECT distinct idformapago,a.montopago as 'Total',a.idcliente FROM vtas_valores a,vtas_ctasctestienepagos b WHERE a.idrecibo=b.idrecibo AND fecha='%s' AND idformapago='%s' UNION SELECT idformapago,SUM(a.montopago ) as 'Total',a.idcliente FROM vtas_valores a WHERE descripcion like '%%%s%%' AND idformapago='%s' group by idformapago) z" % (str(self.fecha),r[0],str(fechacambiada),r[0])
            resultados = consultasBD.ordenCrudaResultDict(SQL)
            utiles.logOperaciones("Caja.py: cargaDatos(): "+str(resultados))
            
            recibos = float(0.00)
            if resultados["ztotal"]==0:
                recibos=0.00
            else:
                print (resultados["ztotal"])
                recibos = (resultados["ztotal"])
                       
            if resultados["ztotal"]==None:
                recibos=0.00

            
            
            print ingreso
            print egreso
            print recibos
            if r[0] != None:
                print "r0"+r[0]
                self.grid1.SetCellValue(i,0,str(r[0])) 
                self.grid1.SetCellValue(i,1,str(r[0])) 
                self.grid1.SetCellValue(i,2,str(round(-egreso,2))) #egreso
                self.grid1.SetCellValue(i,3,str(round(ingreso,2))) #ingreso
                
                self.grid1.SetCellValue(i,4,str(round(en1,2)))  #en1
                
                if self.padre.rol=="cajera":
                    self.grid1.SetCellValue(i,5,str(round(en2,2)))  #en2
                    self.grid1.SetCellValue(i,6,str(round(recibos,2)))  #recibos
                    total = float(-egreso) + float(ingreso) + float(en1) + float(en2) + float(recibos)
                    self.grid1.SetCellValue(i,7,str(round(total,2))) #total en PESOS
                    
                    #carga los datos para la impresion
                    print "CANTIDAD"+str(i)

                    fila = [idformapagos,idformapagos,round(-egreso,2), round(ingreso,2),round(en1,2),round(en2,2),round(recibos,2),round(total,2)]
                    self.datosCaja.append(fila)
                    
                else:
                    
                    #self.grid1.SetCellValue(i,5,str(round(en2,2)))  #en2
                    self.grid1.SetCellValue(i,5,str(round(recibos,2)))  #recibos
                    total = float(-egreso) + float(ingreso) + float(en1) + float(recibos)
                    self.grid1.SetCellValue(i,6,str(round(total,2))) #total en PESOS
                    
                    #carga los datos para la impresion
                    print "CANTIDAD"+str(i)

                    fila = [idformapagos,idformapagos,round(-egreso,2), round(ingreso,2),round(en1,2),round(recibos,2),round(total,2)]
                    self.datosCaja.append(fila)
                    
                    
                    
                    
                    
                    
                
            else:
                pass
                
                #self.grid1.SetCellValue(i,2,str(round(0.0,2))) 
                #self.grid1.SetCellValue(i,3,str(round(0.0,2)))
                #self.grid1.SetCellValue(i,4,str(round(en1,2)))
                #self.grid1.SetCellValue(i,5,str(round(en2,2))) 
            
    
            
            
            #idformapago = 2
            i = i + 1
        
            #egreso
            condicionSQL = "fecha='%s' and tipoalta='Egreso' and (idvalor='%s')" % (str(self.fecha),r[0])
            resultadose = consultasBD.executaSumadorSQL(self,"*","cajachica",condicionSQL)
            for b in resultadose:
                egreso = b[0]
            
            #ingresos
            condicionSQL = "fecha='%s' and tipoalta='Ingreso' and (idvalor='%s') " % (str(self.fecha),r[0])
            resultadosi = consultasBD.executaSumadorSQL(self,"*","cajachica",condicionSQL)
            for ing in resultadosi:
                ingreso = ing[0]
            
        
        
        total1 = float("0.0")
        total2 = float("0.0")
        total3 = float("0.0")
        total = float("0.0")
        for r in xrange(i):
            total1 = total1 + float(self.grid1.GetCellValue(r,4))
            if self.padre.rol=="cajera":
                total2 = total2 + float(self.grid1.GetCellValue(r,5))
                total3 = total3 + float(self.grid1.GetCellValue(r,6))
                total = total + float(self.grid1.GetCellValue(r,7))
            else:
                #total2 = total2 + float(self.grid1.GetCellValue(r,5))
                total3 = total3 + float(self.grid1.GetCellValue(r,5))
                total = total + float(self.grid1.GetCellValue(r,6))
        
        
        if self.padre.rol=="cajera":
            self.grid1.SetCellValue(i+1 ,0,"TOTALES ---->")
            self.grid1.SetCellValue(i+1 ,4,str(total1))
            self.grid1.SetCellValue(i+1 ,5,str(total2))
            self.grid1.SetCellValue(i+1 ,6,str(total3))
            self.grid1.SetCellValue(i+1 ,7,str(total))
            fila = ["Totales ", "-->", "-->","-->", str(total1),str(total2),str(total3),str(total)]
            self.datosCaja.append(fila)
        else:
            self.grid1.SetCellValue(i+1 ,0,"TOTALES ---->")
            self.grid1.SetCellValue(i+1 ,4,str(total1))
            self.grid1.SetCellValue(i+1 ,5,str(total3))
            self.grid1.SetCellValue(i+1 ,6,str(total))
            fila = ["Totales ", "-->", "-->","-->", str(total1),str(total3),str(total)]
            self.datosCaja.append(fila)
            
        
        
        #detalle de egresos e ingresos
        SQL1= "SELECT * FROM cajachica WHERE fecha = '%s'" % self.fecha
        print SQL1
        resultados = consultasBD.ordenCrudaDict(SQL1)
        self.grid1.SetCellValue(i+3 ,0,"DETALLES INGRESOS Y EGRESOS:")
        fila = [str("DETALLES EGRESOS E INGRESOS:")]
        self.datosCaja.append(fila)
        for r in resultados:
            self.grid1.SetCellValue(i+4,0,str(r["fecha"]))
            self.grid1.SetCellValue(i+4 ,1,str(r["tipoalta"]))
            self.grid1.SetCellValue(i+4 ,2,str(r["destinatario"]))
            self.grid1.SetCellValue(i+4 ,3,str(r["monto"]))
            fila = [str(r["fecha"]),str(r["tipoalta"]),str(r["destinatario"]), str(r["monto"])]
            self.datosCaja.append(fila)
            i=  i + 1
        
        
        

    def OnModificarButton(self, event):
        dlg = CAJAchicaAltas.Dialog1(self,self.fecha)
        try:
            dlg.ShowModal()
            self.cargaDatos()
            self.grid1.Refresh()
        finally:
            dlg.Destroy()
    
    

    def OnDetalleButton(self, event):
        dlg = CajaDetallesVentas.CajaDetallesVentas(self,self.fecha)
        try:
            dlg.ShowModal()
            self.cargaDatos()
            self.grid1.Refresh()
        finally:
            dlg.Destroy()

    
        


    def OnCerrarCajaButton(self, event):
        #cierra la caja del dia
        print "Cierre Z en impresora fiscal"
        
        fiscal.cierreZ()
        
        camposSQL = "cajacerrada='%s'" % str((self.fecha))
        condicionSQL = "sucursal=%s" % str((self.padre.sucursalNro))
        
        utiles.reporte_html(self,self.datosCaja, self.columnas2,"1")
        try:
            consultasBD.executaUpdateSQL(self,"parametros",camposSQL,condicionSQL)
            utiles.mensaje(self, "Se Cerro la CAJA del dia %s" % self.fecha)    
            self.cerrarCaja.Enable(False)
            self.modificar.Enable(False)
            os.system("c:\explorer.lnk http://localhost/web/movimientos_stock.php")
            
        
        finally:
            pass

        CtasCtes.calculoRecargo()


    def OnImprimirButton(self, event):
        utiles.reporte_html(self,self.datosCaja, self.columnas2,"0")
        
        
    def OnButton1Button(self, event):
        self.datosArt = []
        descuentos = 0
        contador = 0
        
        
        #saca los art. vendidos en 2
        filaart = ["VENTA Articulos. DIA:", "  -->   ", "   -->   ","  -->  ", str(self.fecha),"  <--  ","  <--  ","  <--  ","  <--  ", "  < ---" ]
        self.datosArt.append(filaart)
        
        filaart = ["IDTICKET", "  NROFACTURA   ","PROVEEDOR  ", "   PTC   ","  DESCRIPCION  ", "TALLE","  COLOR  ","  CANTIDAD  ","  PRECIO LISTA  ","  DESCUENTO  ", "  PRECIO FINAL" ]
        self.datosArt.append(filaart)
        
        sql="SELECT idticket,nrofactura,ptc ,descri,talle,color,cantidad,preciolista,descuento,preciofinal FROM `ventastieneproductos` WHERE idformaticket =1 AND auditoria = '%s'" % (self.fecha)
        resultados = consultasBD.ordenCrudaDict(sql)
        print sql
        for i in resultados:
            
            print str(i["idticket"])
            
            #busco proveedor
            ptc = i["ptc"]
            SQL2 = "SELECT pr.nombre as nombre FROM PRODUCTOS P, producto_talle_color ptc,proveedor pr  WHERE  p.codsussan=ptc.codsussan and ptc.id='%s' and p.proveedor=pr.idproveedor " % str(i["ptc"])
            prove = consultasBD.ordenCrudaDict(SQL2)
            for j in prove:
                nombreProveedor = str(j["nombre"])
            
            
            filaart = [str(i["idticket"]),str(i["nrofactura"]),str(nombreProveedor),str(i["ptc"]),str(i["descri"]),str(i["talle"]),str(i["color"]),str(i["cantidad"]),str(i["preciolista"]),str(i["descuento"]),str(i["preciofinal"])]
            
            descuentos = descuentos + i["descuento"]
            contador = contador+1
            print filaart
            self.datosArt.append(filaart)
        

        espacio = ["--------------------"]
        self.datosArt.append(espacio)
        self.datosArt.append(espacio)
        estadistica = ["Cantid. de Productos: ", contador ,"----> Porcentaje de Descuento: ",round(descuentos/contador,2) , "%"]
        self.datosArt.append(estadistica)
        
        # estadistica total 
        print "empiez estadistica"
        b=[]
        for x in xrange(len(self.datosArt)): 
            if (self.datosArt[x]!=["--------------------"]):
                b.append(self.datosArt[x][2])
                print "entro for1"
        
        porProvee = [(x, b.count(x)) for x in set(b)]
        listaProvee= sorted(porProvee, key=operator.itemgetter(1))        
        listaProvee.reverse()
        
        
        espacio = ["--------------------"]
        ranking = ["Ranking TOP 10 de Proveedores: "]
        self.datosArt.append(espacio)
        self.datosArt.append(ranking)
        rangleta = ["Puesto Nr. ", "Proveedor: ", "Cantidad de Productos Vendidos"]
        self.datosArt.append(rangleta)
        for x in xrange(len(listaProvee)) :
            suma = [ x + 1,listaProvee[x][0] ,listaProvee[x][1]]
            if (x) < 10 :
                self.datosArt.append(suma)
            
        utiles.reporte_html(self,self.datosArt, "","0")


    def OnButton2Button(self, event):
        self.datosArt = []
        descuentos = 0
        contador = 0
        #saca los art. vendidos en 2
        filaart = ["VENTA Articulos. DIA en 2:", "  -->   ", "   -->   ","  -->  ", str(self.fecha),"  <--  ","  <--  ","  <--  ","  <--  ", "  < ---" ]
        self.datosArt.append(filaart)
        
        filaart = ["IDTICKET  ", "  NROFACTURA   ","    PROVEEDOR    "  , "   PTC   ","  DESCRIPCION  ", "TALLE","  COLOR  ","  CANTIDAD  ","  PRECIO LISTA  ","  DESCUENTO  ", "  PRECIO FINAL" ]
        self.datosArt.append(filaart)
        
        sql="SELECT idticket,nrofactura,ptc ,descri,talle,color,cantidad,preciolista,descuento,preciofinal FROM `ventastieneproductos` WHERE idformaticket =2 AND auditoria = '%s'" % (self.fecha)
        resultados = consultasBD.ordenCrudaDict(sql)
        print sql
        cont = 0
        for i in resultados:
            print str(i["idticket"])
            
            #busco proveedor
            ptc = i["ptc"]
            SQL2 = "SELECT pr.nombre as nombre FROM PRODUCTOS P, producto_talle_color ptc,proveedor pr  WHERE  p.codsussan=ptc.codsussan and ptc.id='%s' and p.proveedor=pr.idproveedor " % str(i["ptc"])
            prove = consultasBD.ordenCrudaDict(SQL2)
            for j in prove:
                nombreProveedor = str(j["nombre"])
            
            filaart = [str(i["idticket"]),str(i["nrofactura"]),str(nombreProveedor),str(i["ptc"]),str(i["descri"]),str(i["talle"]),str(i["color"]),str(i["cantidad"]),str(i["preciolista"]),str(i["descuento"]),str(i["preciofinal"])]
            print filaart
            descuentos = descuentos + i["descuento"]
            contador = contador+1
            
            self.datosArt.append(filaart)
        
        
        espacio = ["--------------------"]
        self.datosArt.append(espacio)
        self.datosArt.append(espacio)
        estadistica = ["Cantid. de Productos: ", contador ,"----> Porcentaje de Descuento: ",round(descuentos/contador,2) , "%"]
        self.datosArt.append(estadistica)
        
        # estadistica total 
        print "empiez estadistica"
        b=[]
        for x in xrange(len(self.datosArt)): 
            if (self.datosArt[x]!=["--------------------"]):
                b.append(self.datosArt[x][2])
                print "entro for1"
        
        porProvee = [(x, b.count(x)) for x in set(b)]
        listaProvee= sorted(porProvee, key=operator.itemgetter(1))        
        listaProvee.reverse()
        
        
        
        espacio = ["--------------------"]
        ranking = ["Ranking TOP 10 de Proveedores: "]
        self.datosArt.append(espacio)
        self.datosArt.append(ranking)
        rangleta = ["Puesto Nr.", "Proveedor: ", "Cantidad de Productos Vendidos:"]
        self.datosArt.append(rangleta)
        for x in xrange(len(listaProvee)) :
            suma = [ x + 1,listaProvee[x][0] ,listaProvee[x][1]]
            if (x) < 10 :
                self.datosArt.append(suma)
            
        
        print self.datosArt
        utiles.reporte_html(self,self.datosArt, "","0")